//#include <iostream>
//#include <vector>
//using namespace std;

//
//int main() {
//    char s1[100];
//    
//    string ret;
//    cin >> s1;
//    string s(s1);
//    size_t  i = 0, n = 0;
//    while (i < s.size())
//    {
//        if (s[i] >= 'A' && s[i] <= 'Z') ret.push_back(s[i]);
//        else if (s[i] >= 'a' && s[i] <= 'z')ret.push_back(s[i] + 32);
//        n = s.find(' ', n + 1);
//        if (n != s.npos)
//        {
//            i = n + 1;
//            if (s[i] >= 'A' && s[i] <= 'Z') ret.push_back(s[i]);
//            else if (s[i] >= 'a' && s[i] <= 'z')ret.push_back(s[i] + 32);
//        }
//        else {
//            break;
//        }
//    }
//    cout << ret;
//    //const char* rets = ret.c_str();
//    //printf("%s", rets);
//
//    return 0;
//
//
//}

//10 20
//1 1 6 10 9 3 3 5 3 7

//int main() {
//    int left = 0, right = 0, n = 0, x = 0, r = 0, l = 0,sum = 0;
//    //cin >> n >> x;
//    n = 10, x = 20;
//    vector<int> v = { 1, 1 ,6, 10 ,9, 3 ,3 ,5 ,3 ,7 };
//    //while (n--)
//    //{
//    //    int num;
//    //    cin >> num;
//    //    v.push_back(num);
//    //}
//    size_t min = -1;
//    while (right < v.size()) {
//        sum += v[right];
//        while (sum >= x) {
//
//            if (right - left + 1 < min)
//            {
//                r = right;
//                l = left;            
//            }
//            sum -= v[left++];
//            min = right - left + 1;
//        }
//        right++;
//    }
//    printf("%d %d", r, l);
//    return 0;
//}


#include <algorithm>
#include <iostream>
#include <queue>
#include <vector>
using namespace std;

//int main() {
//    vector<int> v;
//    int n = 5, sum = 0, k = 3;
//    //cin >> n >> k;
//    for (int i = 0; i < n; i++) {
//        int num = 0;
//        cin >> num;
//        if (num % 2 == 0) v.push_back(num);
//        else sum += num;
//    }
//    priority_queue<int> hp(v.begin(), v.end());
//    for (int i = 0; k > 0 && i < v.size(); i++) {
//        int max = hp.top();
//        hp.pop();
//        max /= 2;
//        if (max % 2 == 1) sum += max;
//        else hp.push(max);
//        k--;
//    }
//    while (!hp.empty())
//    {
//        sum += hp.top();
//        hp.pop();
//    }
//    printf("%d", sum);
//    return 0;
//
//}

int main() {
    priority_queue<int> hp;
    int n = 5, sum = 0, k = 3;
    //cin >> n >> k;
    for (int i = 0; i < n; i++) {
        int num = 0;
        cin >> num;
        if (num % 2 == 0) hp.push(num);
        else sum += num;
    }
    for (; k > 0 && !hp.empty(); k--) {
        int max = hp.top();
        hp.pop();
        max /= 2;
        if (max % 2 == 1) sum += max;
        else hp.push(max);
    }
    while (!hp.empty())
    {
        sum += hp.top();
        hp.pop();
    }
    printf("%d", sum);
    return 0;

}